﻿using System;
using System.Net.Mail;
using TccServicos.Util;

namespace EnvioEmail
{
    public class Email
    {
        private string nome;
        private string email;
        private string smtp;
        private int porta;
        private string usuario;
        private string senha;
        private bool indicaSsl;
        private string mensagem;

        public Email()
        {
            nome = "Busca Pet";
            email = "appbuscapet@gmail.com";
            smtp = "smtp.gmail.com";
            porta = 587;
            usuario = "appbuscapet@gmail.com";
            senha = "buscapetios";
            indicaSsl = true;

            mensagem = "";
            mensagem += "<!DOCTYPE html>";
            mensagem += "<html>";
            mensagem += "<head>";
            mensagem += "  <meta charset=\"utf-8\">";
            mensagem += "  <title>Busca Pet</title>";
            mensagem += "  <meta name=\"generator\" content=\"Google Web Designer 1.9.0.0619\">";
            /*
            mensagem += "  <style type=\"text/css\" id=\"gwd-text-style\">";
            mensagem += "    p {";
            mensagem += "      margin: 0px;";
            mensagem += "    }";
            mensagem += "    h1 {";
            mensagem += "      margin: 0px;";
            mensagem += "    }";
            mensagem += "    h2 {";
            mensagem += "      margin: 0px;";
            mensagem += "    }";
            mensagem += "    h3 {";
            mensagem += "      margin: 0px;";
            mensagem += "    }";
            mensagem += "  </style>";
            mensagem += "  <style type=\"text/css\">";
            mensagem += "    html, body {";
            mensagem += "      width: 100%;";
            mensagem += "      height: 100%;";
            mensagem += "      margin: 0px;";
            mensagem += "    }";
            mensagem += "    body {";
            mensagem += "      background-color: transparent;";
            mensagem += "      transform: perspective(1400px) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);";
            mensagem += "      transform-style: preserve-3d;";
            mensagem += "    }";
            mensagem += "    .gwd-p-8is5 {";
            mensagem += "      position: absolute;";
            mensagem += "      text-align: left;";
            mensagem += "      left: 0px;";
            mensagem += "      top: 0px;";
            mensagem += "      height: 107px;";
            mensagem += "      transform-origin: 516px 293.5px 0px;";
            mensagem += "      width: 439px;";
            mensagem += "    }";
            mensagem += "    .gwd-strong-10jl {";
            mensagem += "      font-family: \"Trebuchet MS\";";
            mensagem += "    }";
            mensagem += "    .gwd-span-1wz7 {";
            mensagem += "      font-family: \"Trebuchet MS\";";
            mensagem += "    }";
            mensagem += "  </style>";
            */
            mensagem += "</head>";
            mensagem += "";
            mensagem += "<body class=\"htmlNoPages\">";
            mensagem += "  <p <strong class=\"gwd-strong-10jl\">Busca Pet</strong><br>";
            mensagem += "    <br>";
            mensagem += "    {{mensagem1}}<br><br>{{mensagem2}}<br><br>";
            mensagem += "  </p>";
            mensagem += "</body>";
            mensagem += "";
            mensagem += "</html>";
        }

        public void Enviar(string para, string mensagem1, string mensagem2, string titulo)
        {
            SmtpClient client = new SmtpClient();
            client.Host = smtp;
            client.EnableSsl = indicaSsl;
            client.Port = porta;
            client.Credentials = new System.Net.NetworkCredential(usuario, senha);
            client.Timeout = 10000;

            MailMessage mail = new MailMessage();
            mail.Sender = new System.Net.Mail.MailAddress(para, nome);
            mail.From = new MailAddress(usuario, nome);
            mail.To.Add(new MailAddress(para, para));
            mail.Subject = titulo;
            string msg = this.mensagem.Replace("{{mensagem1}}", mensagem1);
            msg = msg.Replace("{{mensagem2}}", mensagem2);
            mail.Body = msg;
            mail.IsBodyHtml = true;
            //mail.Priority = MailPriority.High;

            try
            {
                client.Send(mail);
            }
            catch (Exception ex)
            {
                Log.GravarLog(string.Format("{0} Erro: {1}", "EnvioEmail", ex.ToString()));
            }
            finally
            {
                mail = null;
            }
        }
    }
}
